import request from '@/utils/request'

// 使用完整路径而不是相对路径
const baseUrl = '/api/post/audit'

// API响应类型定义
export interface ApiResponse<T = any> {
  code: number;
  message: string;
  data: T;
  success?: boolean;
}

/**
 * 获取待审核的帖子列表
 * @param params 查询参数
 * @returns 帖子列表
 */
export function getPendingPosts(params?: any): Promise<ApiResponse> {
  return request({
    url: `${baseUrl}/pending`,
    method: 'get',
    params
  })
}

/**
 * 获取特定状态的帖子列表
 * @param status 帖子状态
 * @param params 查询参数
 * @returns 帖子列表
 */
export function getPostsByStatus(status: number, params?: any): Promise<ApiResponse> {
  return request({
    url: `${baseUrl}/status/${status}`,
    method: 'get',
    params
  })
}

/**
 * 审核通过帖子
 * @param postId 帖子ID
 * @param auditorId 审核人ID
 * @param remark 审核备注
 * @returns 审核结果
 */
export function approvePost(postId: number, auditorId: number, remark?: string): Promise<ApiResponse> {
  return request({
    url: `${baseUrl}/${postId}/approve`,
    method: 'post',
    params: {
      auditorId,
      remark
    }
  })
}

/**
 * 拒绝发布帖子
 * @param postId 帖子ID
 * @param auditorId 审核人ID
 * @param reason 拒绝原因
 * @returns 审核结果
 */
export function rejectPost(postId: number, auditorId: number, reason: string): Promise<ApiResponse> {
  return request({
    url: `${baseUrl}/${postId}/reject`,
    method: 'post',
    params: {
      auditorId,
      reason
    }
  })
}

/**
 * 批量审核帖子
 * @param auditData 审核数据
 * @returns 处理结果
 */
export function batchAudit(auditData: any[]): Promise<ApiResponse> {
  return request({
    url: `${baseUrl}/batch`,
    method: 'post',
    data: auditData
  })
}

/**
 * 获取已发布的帖子列表
 * @param params 查询参数
 * @returns 帖子列表
 */
export function getPublishedPosts(params?: any): Promise<ApiResponse> {
  return request({
    url: `${baseUrl}/published`,
    method: 'get',
    params
  })
}

/**
 * 获取被拒绝的帖子列表
 * @param params 查询参数
 * @returns 帖子列表
 */
export function getRejectedPosts(params?: any): Promise<ApiResponse> {
  return request({
    url: `${baseUrl}/rejected`,
    method: 'get',
    params
  })
}

/**
 * 获取用户所有帖子（包括各种状态）
 * @param userId 用户ID
 * @param params 查询参数
 * @returns 帖子列表
 */
export function getUserAllPosts(userId: number, params?: any): Promise<ApiResponse> {
  return request({
    url: `${baseUrl}/user/${userId}`,
    method: 'get',
    params
  })
} 